package com.gjy.design.single;

/**
 * @author gjy
 * @version 1.0
 * @since 2025-11-06 09:57:34
 */
public class EagerSingleton {

    // 1. 私有化构造方法，防止外部 new
    private EagerSingleton() {
        // 可以在这里加入保护，防止被反射攻击
        if (INSTANCE != null) {
            throw new RuntimeException("不允许通过反射创建实例");
        }
    }

    // 2. 在类内部创建一个静态的最终实例
    // 类加载时就初始化，由JVM保证线程安全
    private static final EagerSingleton INSTANCE = new EagerSingleton();

    // 3. 提供一个公共的静态方法，返回这个唯一的实例
    public static EagerSingleton getInstance() {
        return INSTANCE;
    }

    // 4. 普通业务方法
    public void doSomething() {
        System.out.println("饿汉式单例正在执行业务...");
    }

}
